CUBE CONNECT Edition Help

Examples and FAQ

This section contains examples of the Distribution program, along with a link to FAQ topics:

Example 1

RUN PGM=DISTRIBUTION
REPORT ZDAT=Y
ZDATI[1] = TSTPA1,Z=#1,P1=2,P2=3,P3=4,P4=5,P5=6,A1=7,A2=8,A3=9,A4=10,A5=11
MATI = IMPEDE.MAT
MATO = GMTRIPS, MO=1-5, NAME=HBW, HBO, NHB, IX, XI
LOOKUP FAIL=12000,1,0, LIST=N, FILE=TSTFF1, NAME=FF,
LOOKUP[1]=1, RESULT=2,
LOOKUP[2]=1, RESULT=3,
LOOKUP[3]=1, RESULT=4,
LOOKUP[4]=1, RESULT=5,
LOOKUP[5]=1, RESULT=6,
INTERPOLATE=N, SETUPPER=Y
MAXITERS=3 MAXRMSE=10
SETPA P[1]=ZI.1.P1 P[2]=ZI.1.P2 P[3]=ZI.1.P3 P[4]=ZI.1.P4 P[5]=ZI.1.P5
SETPA A[1]=ZI.1.A1 A[2]=ZI.1.A2 A[3]=ZI.1.A3 A[4]=ZI.1.A4 A[5]=ZI.1.A5
LOOP PURP=1,5 ;DO PURPOSES 1-5
MW[PURP] = A[PURP][J] * FF(PURP,MI.1.1)
SUMAF = ROWSUM(PURP)
IF (SUMAF > 0) MW[PURP] = P[PURP]/SUMAF * MW[PURP] ENDLOOP
ENDRUN

Example 2

This is Gravity application illustrating several ways to do a gravity model.

RUN PGM=DISTRIBUTION
REPORT ZDAT=Y
ZDATI[1]=TSTPA1,Z=#1,
P1=2, P2=3, P3=4, P4=5, P5=6,
A1=7, A2=8, A3=9, A4=10, A5=11 MATI[1]=C:\DEMO\DEMO11.DAT
SETPA P[1]=P1 P[2]=P2 P[3]=P3 P[4]=P4 P[5]=P5
SETPA A[1]=A1 A[2]=A2 A[3]=A3 A[4]=A4 A[5]=A5
LOOKUP FAIL=12000,1,0, LIST=N, FILE=TSTFF1, NAME=FF,
LOOKUP[1]=1, RESULT=2,
LOOKUP[2]=1, RESULT=3,
LOOKUP[3]=1, RESULT=4,
LOOKUP[4]=1, RESULT=5,
LOOKUP[5]=1, RESULT=6,
INTERPOLATE=Y, SETUPPER=N
MAXITERS=20 MAXRMSE=35
MW[11]=MI.1.1
LOOP PURP=1,5 ; distribute with user equation (Results in MW[6-10])
PP = PURP+5
MW[PP] = A[PURP][J]*FF(PURP,MW[11])
SUMAF = P[PURP]/ROWSUM(PP)
MW[PP] = SUMAF*MW[PP]
ENDLOOP
/* Now do same distribution with gravity statements(more efficient) */
GRAVITY PURPOSE=1, LOS=MW[11], FFACTORS=FF
GRAVITY PURPOSE=2, LOS=MW[11], FFACTORS=FF
GRAVITY PURPOSE=3, LOS=MW[11], FFACTORS=FF
GRAVITY PURPOSE=4, LOS=MW[11], FFACTORS=FF
GRAVITY PURPOSE=5, LOS=MW[11], FFACTORS=FF
ENDRUN

Distribution example 3 - HBW gravity model using gamma impedance function

This script reads the composite time skim table created from the AM peak period highway and transit skims.

This script then performs the gravity model using the estimated friction factors along with the P’s & A’s in order to generate a trip table.

Finally, a trip length frequency is performed for the new trip table.

run pgm=distribution
zdati[1]=hbwpa.txt,z=#1,p1=2,p2=3,p3=4,p4=5,a1=6,a2=7,a3=8,a4=9
mati=SKIM.MAT
mato=hbwgm.mat, mo=1-4, name=Income1,Income2,Income3,Income4
PAR maxiters=20 maxrmse=10
setpa p[1]=zi.1.p1 p[2]=zi.1.p2,
p[3]=zi.1.p3 p[4]=zi.1.p4,
a[1]=zi.1.a1 a[2]=zi.1.a2,
a[3]=zi.1.a3 a[4]=zi.1.a4 ; Set P and A Fields
; ======================LOOKUP FUNCTION=====================
LOOKUP NAME=_FFParms,; Gamma Function Parameters
LOOKUP[1]=1, RESULT=2, ; ALPHA VALUE
LOOKUP[2]=1, RESULT=3, ; BETA VALUE
INTERPOLATE=N, ; No Interpolation needed on income class
R=' 1 -0.020 -0.123', ; Income Class 1, Alpha, Beta
' 2 -0.020 -0.123', ; Income Class 2, Alpha, Beta
' 3 -0.020 -0.123', ; Income Class 3, Alpha, Beta
' 4 -0.020 -0.123' ; Income Class 4, Alpha, Beta
; ==============Put TIME VALUES IN WORKING MATRICES===========
mw[11]=mi.1.1 ; time for income class 1
mw[12]=mi.1.2 ; time for income class 2
mw[13]=mi.1.3 ; time for income class 3
mw[14]=mi.1.4 ; time for income class 4
; ======CREATE GAMMA VALUE MATRICES FOR EACH INCOME CLASS=====
LOOP Inc=1,4
_b=_FFParms(1,Inc)
_c=_FFParms(2,Inc)
TSKIM=INC+10 ; Input Time Skim to MW[11] to MW[14]
GSKIM=INC+20 ; Output Gamma Skim
; PUT GAMMA MATRICES IN MW[21]-MW[24]
mw[GSKIM]=(mw[TSKIM]^_b)*exp(_c*mw[TSKIM])
ENDLOOP
; =================PERFORM TRIP DISTRIBUTION=================
LOOP PURP=1,4 ; creates MW[1] to MW[4]
PAF=0
MW[PURP] = A[PURP] * MW[PURP+20]
ATTRSUM=ROWSUM(PURP)
IF (ATTRSUM>0) PAF=P[PURP]/ATTRSUM
MW[PURP]=PAF * MW[PURP]
ENDLOOP
; ========GENERATE FREQUENCY REPORTS BASED ON TIME============
FREQUENCY VALUEMW=1 BASEMW=11, RANGE=1-140,
TITLE='** HBW Income Class 1 Travel Time Frequency **'
FREQUENCY VALUEMW=2 BASEMW=12, RANGE=1-140,
TITLE='** HBW Income Class 2 Travel Time Frequency **'
FREQUENCY VALUEMW=3 BASEMW=13, RANGE=1-140,
TITLE='** HBW Income Class 3 Travel Time Frequency **'
FREQUENCY VALUEMW=4 BASEMW=14, RANGE=1-140,
TITLE='** HBW Income Class 4 Travel Time Frequency **'
endrun

Frequently Asked Questions

Please see FAQ - Matrix & Distribution in Frequently Asked Questions.